const puppeteer = require('puppeteer')

const base = `https://movie.douban.com/subject/`
const doubanId = `26588308`

const videoBase = `https://movie.douban.com/trailer/229005/#content`

const sleep = time => new Promise(resolve => {
  setTimeout(resolve, time)
})

;(async () => {
  console.log('开始访问目标页面')

  const browser = await puppeteer.launch({
    args: ['--no-sandbox'],
    dumpio: false
  })

  const page = await browser.newPage()
  await page.goto(base + doubanId, {
    waitUntil: 'networkidle2'
  })

  await sleep(1000)

  const result = await page.evaluate(() => {
    var $ = window.$
    var it = $('.related-pic-video')
    if (it && it.length > 0) {
      var link = it.attr('href')
      var reg = /^url\("(.*)"\)$/
      var cover = it.css('backgroundImage').match(reg)[1]
      return {
        link,
        cover
      }
    }

    return {}
  })
let video

if (result.link) {
  await page.goto(result.link, {
    waitUntil: 'networkidle2'
  })
  await sleep(1000)

  video = await page.evaluate(() => {
    var $ = window.$
    var it = $('source')

    if (it && it.length > 0) {
      return it.attr('src')
    }
    return ''
  })
}

const data = {
  video,
  doubanId,
  cover: result.cover
}
browser.close()
process.send({data})
process.exit(0)
})()
